package java_2;

/**
 * Created by xupeng20 on 2019/1/25.
 */
public class java_2_2 {
    /**
     *
     * 中位数，其实就是找到第k个大小的元素的特例。在单数组中实现方式简单，关键是如何在两个数组中找到第k大的元素。
     * https://blog.csdn.net/wonking666/article/details/82380372
     *
     *
     * 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。

     请你找出这两个有序数组的中位数，并且要求算法的时间复杂度为 O(log(m + n))。

     你可以假设 nums1 和 nums2 不会同时为空。

     示例 1:

     nums1 = [1, 3]
     nums2 = [2]

     则中位数是 2.0
     示例 2:

     nums1 = [1, 2]
     nums2 = [3, 4]

     则中位数是 (2 + 3)/2 = 2.5
     */

    public static int getNum(int[] arr1,int[] arr2){
        int length1= arr1.length;
        int length2= arr2.length;
        int result = 0;
        if (length1/2==0 && length1/2==0){
            result=(arr1[length1/2+1]+arr2[length2/2+1])/2;
        }else if (length1/2!=0&&length2/2==0){
            result=(arr1[length1/2]+arr2[length2/2+1])/2;
        }else if (length1/2==0&&length2!=0){
            result=(arr1[length1/2+1]+arr2[length2/2])/2;
        }else {
            result=(arr1[length1/2]+arr2[length2/2])/2;
        }
        return result;
    }
/*    public int get2Num(int[] arr1, int[] arr2){
        int m = arr1.length;
        int n = arr2.length;

        int[] nums = new int[m+n];
        if (m==0){

        }
    }*/
    public static void main(String[] args){
        int[] arr1=new int[]{1,2};
        int[] arr2=new int[]{3,4};
        int num = getNum(arr1, arr2);
        System.out.println(num);
    }
}
